'''
第一题：两种循环打出四种效果的9*9乘法表
'''
# 1.把乘法表左上角考虑成(1，1)坐标点，每个乘法表达式 等于row（行） * col（列）
# 2.输出是一行一行输出的，所有每一行输出后需要换行
# 3.每一行的行号，就是列从1到行号的循环
# 4.为格式化输出，使用占位

#使用for... in循环
for row in range(1,10):
    for col in range(1,row+1):
        print('{}*{}={:<4}'.format(col,row,row*col),end='')
    print('')

print('')
print('='*60)

for row in range(9,0,-1):
    for col in range(1, row + 1):
        print('{}*{}={:<4}'.format(col, row, row * col), end='')
    print('')

print('')
print('=' * 60)

for lie in range(1,10):
    print(' ' * 8 * (9 - lie), end='')
    for hang in range(lie,0,-1):
        print('{}*{}={:<4}'.format(hang, lie, lie*hang), end='')
    print('')

print('')
print('='*60)

for hang in range(9,0,-1):
    print(' ' * 8 * (9 - hang), end='')
    for lie in range(hang,0,-1):
        print('{}*{}={:<4}'.format(lie, hang, lie*hang), end='')
    print('')

print('')
print('='*60)

#使用while循环
row=1
while row <10:
    col = 1
    while col<row+1:
        print('{}*{}={:<4}'.format(col, row, row * col), end='')
        col=col+1
    row = row + 1
    print('')
print('')
print('=' * 60)

row=9
while row>0:
    col=1
    while col <row+1:
        print('{}*{}={:<4}'.format(col, row, row * col), end='')
        col=col+1
    row = row -1
    print('')
print('')
print('=' * 60)


lie = 1
while lie<10:
    print(' ' * 8 * (9 - lie), end='')
    hang = lie
    while hang>0:
        print('{}*{}={:<4}'.format(hang, lie, lie * hang), end='')
        hang-=1
    lie += 1
    print('')
print('')
print('='*60)

hang = 9
while hang >0:
    print(' ' * 8 * (9 - hang), end='')
    lie = hang
    while lie >0:
        print('{}*{}={:<4}'.format(lie, hang, lie * hang), end='')
        lie-=1
    print('')
    hang -=1
print('')
print('='*60)



